// 普通队列，基于数组
class Queue {
    constructor(arr = []) {
        this.arr = arr
    }
    // 入队
    enQueue(element) {
        this.arr.push(element)
    }
    // 出队
    deQueue() {
        return this.arr.shift()
    }
    // 判空
    isEmpty() {
        return this.arr.length === 0
    }
    // 返回队头
    getHead() {
        return (this.isEmpty()) ? null : this.arr[0]
    }
    // 返回队长
    queueSize() {
        return this.arr.length
    }
    // 返回描述字符串
    toString() {
        let str = `(队头) > `
        this.arr.forEach(item => {
            str += `${item} > `
        })
        return `${str} (队尾)`
    }
}

module.exports = Queue




//测试用例
// let arr = [1, 2, 3, 4, 5, 6]
// let q = new Queue(arr)
// q.enQueue(7)
// q.deQueue()
// console.log(q.toString());
// console.log(q.getHead());
// console.log(q.queueSize());